alberta development edmonton static code analysis canadian montreal critical software defects calgary visual studio add-in quebec c++ ontario source code analysis refactoring java